/**
 * @copyright Copyright (c) 2025 CSG Digital Grid Technology (Guangdong) Co., Ltd.
 * @author Chen Yongjie
 */
#ifndef __TEST_CS_GETOPT_H
#define __TEST_CS_GETOPT_H

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <CUnit/CUnit.h>
#include "cs_getopt.h"
#include <stdint.h>

// 测试版本命令处理
void test_getOptionParam_version(void);

// 测试帮助命令处理
void test_getOptionParam_help(void);

// 测试APN添加命令处理
void test_getOptionParam_apn_add(void);

// 测试APN添加指定运营商命令处理
void test_getOptionParam_apn_add_carrier(void);

// 测试APN显示命令处理
void test_getOptionParam_apn_show(void);

// 测试路由显示命令处理
void test_getOptionParam_route_show(void);

// 测试默认路由设置命令处理
void test_getOptionParam_route_default_set(void);

// 测试调制解调器信息显示命令处理
void test_getOptionParam_modem_show(void);

// 测试APN删除命令处理
void test_getOptionParam_apn_delete(void);

// 测试路由删除命令处理
void test_getOptionParam_route_delete(void);

// 测试AT命令发送处理
void test_getOptionParam_at_send(void);

// 测试路由添加命令处理
void test_getOptionParam_route_add(void);

// 测试无效参数处理
void test_getOptionParam_invalid_args(void);

// 测试APN添加指定不支持的运营商命令处理
void test_getOptionParam_apn_add_invalid_carrier(void);

// 测试APN删除命令处理(按索引)
void test_getOptionParam_apn_delete_index(void);

// 测试APN删除命令处理(按运营商)
void test_getOptionParam_apn_delete_carrier(void);

// 测试边界条件：最小参数数量
void test_getOptionParam_min_args(void);

// 测试边界条件：空参数
void test_getOptionParam_empty_args(void);

#endif /* __TEST_CS_GETOPT_H */